By JediDog
Date: 02-05-2008
Version: v3
*****************************************
Jedi Knight II: Jedi Outcast MODIFICATION
*****************************************
~!~ JediDog Fix� v3 ~!~
~For JK2 1.04
Note: if you are reading this windowed in a notepad, I recommend maximizing it and going to format and checking word wrap, so it is easier to read.
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Modification contains:
Patches & fixes:
-Anti Model Flood
-Anti Saber Flood
-Anti Name Flood
-Anti Force Crash
-Anti MSG Boom
-Anti Name Crash
-Anti Fake players
-Fix for Duel Challenge Bug
Server Extras & Commands:
-RCon Command, Slap
-RCon Command, Sleep
-RCon Command, CSay
-RCon Command, jd_antiNameCrash
-RCon Command, jd_antiForceCrash
-RCon Command, jd_FakePlayerDetection
-RCon Command, jd_CloseServer
-RCon Command, jd_SitEmote
Client Extras & Commands:
-Sit emote command for clients
-Help Command
*~~~~~=~~~~~*
NEW IN VERSION 3:
-Reinforced protection against MSGBoom by adding 3 extra solutions. Now there is four Anti MSGBoom. Haha.
-Improved Anti Fake Players.
-Fixed Duel Challenge Get-Up Quick Bug. (Scroll down to get more info)
-Gave more credit to myself by sending msgs to client when entering the game in-console. So that they know what it is since I left "Game Version: basejk" alone instead of putting like "JediDog Fix."
-Added a close server option from Gamall mod because it's a really cool option to use instead of pinging the server or passwording it if you wanted to close it.
-Added | and to the anti name crash acceptable letters list. Apparently it thought that | and were illegal characters. Now you may connect with those. (Note: if I ever forget a letter/character/symbol that doesn�t do the bug, TELL me at my forum and I WILL add it)
-Added RCon Commands CSay, Slap, and Sleep.
-Fixed /rcon <msg> & /rcon say <msg> next line bug. Also made it with a few colors.
-Added /sit emote.
--Added command to turn off/on the sit command.
-Bug Fixes that I seem to have created by accident:
--Fixed push & pull bug.
--Fixed bug that rarely let clients with illegal characters in their name to join the server.
--Fixed invulnerability shield/bubble not to appear after respawning.
--Fixed bug not allowing some clients to be knocked down.
-Added more logs.
-Updated ReadeMe.
-Fixed some more typos in the ReadMe ^_^
*~~~~~=~~~~~*
NEW IN VERSION 2:
-Added the 3 commands just incase there was some bug that would appear some how. But that's very unlikely as you can read below "none after months of beta testing." But I added it you know just incase you guys wanted it off/on cmds.
-Also added log improvements by showing IP & info when a client connects, showing IP when there is a fake player, and showing IP when there is a name with illegal characters.
-Rewrote the information about name crash in ReadMe.
-Added more notes and comments in ReadMe.
-Fixed some typos in the ReadMe. Heh.
*~~~~~=~~~~~*
IN VERSION 1:
Basic Protection against Flood, Force Crash, MSGBoom, Name Crash & Fake Players.
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Installation:
Put it in your base. After testing it appears you cannot run this mod with another mod. It is lame, I know but I guess for those of you who do not have any mods in your server this will be fine. It does not take the server off the list when you press Game Version: All/JK2... when it is on Jedi Knight II it'll still appear on the list.
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Commands:
-jd_antiNameCrash = Turns off and on the anti name crash part of the mod. (0 = off, 1 = on)
-jd_antiForceCrash = Turns off and on the anti force crash part of the mod. (0 = off, 1 = on)
-jd_FakePlayerDetection = Turns off and on the anti fake players bug part of the mod. (0 = off, 1 = on)
-jd_CloseServer = Closes and opens the server whenever you turn it on. (0 = off, 1 = on)
-jd_SitEmote = Enables or disables the sit emote. (0 = off, 1 = on)
-Slap = /rcon slap #clientNumber# and the client will be slapped up. Can only be used in FFA game type. (So people wouldn't cheat if it's in duel game type... or if it was in CTF and they had flag it wouldn't ruin it.)
-Sleep = /rcon sleep #clientNumber# and the client will be put to sleep and will not be able to move. Can only be used in FFA game type. (So people wouldn't cheat if it's in duel game type... or if it was in CTF and they had flag it wouldn't ruin it.)
-CSay = /rcon csay <msg> and the message you type will appear in the middle of all client's screens.
-Sit = lets client sit down with their legs crossed.
-Help = displays helpful info, including mod & contact information and lists the Fix's commands.
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Defaults for commands:
-jd_antiNameCrash "1" ON
-jd_antiForceCrash "1" ON
-jd_FakePlayerDetection "1" ON
-jd_CloseServer "0" OFF
-jd_SitEmote "1" ON
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Descriptions of how the exploits work in JK2 1.04:
--Model, Saber & Name Flood - the reason this lags you, lags you out, slows you down or doesn't harm you at all is quite simple. It lags you because the overflow you are loading onto your client, in front of some one is more vulnerable because you have to visually see the changes. If you have higher ping you are more vulnerable because it overflows the amount you have and since you have low connection to the server it's more dangerous. The reason(s) it doesn't harm you is because you have very low ping (around 50 ping) or your rate is too low. Change your rate by /rate 75000 that'll stop it if your ping is <100. If your ping is 150+ you're quite screwed. :)
--Force Crash - OK, the reason this works is also simple and sort of logical. If you change your force powers into a number that is not in the calculations of what is set to a proper amount of force (forcepowers 7-2-3333333333333333) it sort of glitches itself since it is not the correct number in the calculations of the force powers. Thus meaning since it is not in the correct calculations, it errors and messes up and causes the server to crash.
--MSGBoom Exploit - MSGBoom in JK2 1.04 is similar to a flood. It sends a large message to the server overflowing it and acting as a flood to client(s) possibly lagging you out. Usually when you are flooded or msgboom'd you will either get "Connection Interrupted" message or be sent to your main menu.
--Illegal Characters Crash(IN THEORY) - I'm not really sure 100% why this works either but I have a theory. The reason I said "illegal characters crash" is because JK2 doesn't support the ASCII characters. In the source code there�s this little line right here (example): trap_SendServerCommand( -1, va("print\"anything can go here but if it has illegal characters in it like º¿§ï¡â it'll create the bug\"));. Some times just having that in your name and talking will make you bug but not crash from my tests. That is how I fixed the crash using a hex editor in JK2 1.02. If that message isn't there and there is no "SendServerCommand of their name" the server can't be sent a message from that part which prevents it. Thus meaning that it 'implodes' itself by having it being sent the illegal characters ending up in a crash like force crash.
--Duel Challenge Get-Up Quick Bug - whenever a client is knocked down and uses the K bind (/engage_duel) it will activate another animation and allow them to get up quicker than they are supposed to.
*~~~~~*
The fixes in this mod that prevent those bugs above in JK2 1.04.
--Model, Saber & Name Flood - I tried making this blend in so it wouldn't be too noticeable unless you actually tried to flood. It prevents UserInfoChanges from changing within .50 of a second. That's "wait 50;" is the max you can go in a UserInfoChange (model, saber, name, force). I used to have it as you have to wait three seconds in between changes but that was just too annoying, so I put it as .50 so it's nearly normal and less annoying.
--Force Crash - This fix is a work-around using Gamall's fix for it. The fix does not allow any force string that is not within the field of "#-#-################" the first # is what g_maxforcerank is on, 7 is Jedi Master. The second one can only be two numbers, either 1 or 2. One stands for light side of the force and two stands for dark side of the force. The last 16 numbers stand for whatever you chose. So the string should look like 7-1-332003023030303213.
--MSGBoom Exploit - It will not flood out anyone nor crash the server with this mod. It basically drops any large msg coming to the server and doesn't allow it to be shared.
--Illegal Characters Crash - This denies anyone access that has any illegal character in their name. This is a work-around to the bug because I didn't really know how to fix it, nor did I want to find a way since this works perfectly.
--Duel Challenge Get-Up Quick Bug - Clients will not be able to engage in a duel while laying down anymore.
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
Comments & Notes:
-This should result in your JK2 1.04 server being uncrashable. I say that because these are the only known crashes. So if there is any new crashes there will be another version fixing it from this.
-Some of the most popular mods aren't fully protected:
--DS-Online v1.32 is vulnerable to name crash/glitch and fake players.
--DC Mod v1.2 is vulnerable to flood.
--Jedi Academy Mod 1.6 is vulnerable to flood, name crash, force crash and fake players.(That was a horrible mistake not to patch against any of those for JAMod.)
---DS-Online v2 has fixed all these bugs that this mod has fixed. But it appears it is still in the Beta testing.
---I do not recommend trying these crashes on other people's servers with these mods above. There are usually admins on and it is quite easy to get your IP and ban you. I did it because I could care less if I was banned. I ONLY crashed a few servers on the 20th and 21st of January 2008. Any other crashes were not done by me. I crashed a total of 4 times on different servers & my name crash I used was "Savanno"... Sorry. If you are upset about that, get over it, server goes down, server comes back up. If it doesn't come back up and you're paying for that server, make sure you have an auto restart on. If the host doesn't have an automatic restarter, request it if not, they're probably 'nub' server provider(s) anyway. Also it appears some body read their logs and saw my name when connecting and can are now using it. >_<
-This is still a basejk2 fix. I added the extras so that people would have more fun. If I wanted this to be a bigger mod, trust me it would. :)
-I think this will be my last version unless there is another thing to patch.
-Above all, everyone have fun playing JK2 on any version that you play on.
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
BUGS: None that I am aware of after months of beta testing.
*~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~=~~~~~~*
To Contact me & find more fixes and future updates go to
http://jedidog.freeforums.org/
----------------------------------------------------------
~*Credits for helping, creating & testing:
Dark (creating/helping)
Luigi (helping)
Gamall (using his anti force crash)
Falassion (testing)
Ninn (testing and providing a server for me)
Anarchy (testing)
BigRob (testing)
=========================================================
THIS MODIFICATION IS NOT MADE, DISTRIBUTED, OR SUPPORTED BY ACTIVISION, RAVEN, OR
LUCASARTS ENTERTAINMENT COMPANY LLC. ELEMENTS TM & © LUCASARTS
ENTERTAINMENT COMPANY LLC AND/OR ITS LICENSOR